home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group93b.txt / 000121_icon-group-sender _Sat May 29 02:27:04 1993.msg < prev    next >
Internet Message Format  |  1993-06-16  |  4KB

  1. Received: from owl.CS.Arizona.EDU by cheltenham.CS.Arizona.EDU; Sat, 29 May 1993 09:25:27 MST
  2. Received: by owl.cs.arizona.edu; Sat, 29 May 1993 09:25:26 MST
  3. Date: Sat, 29 May 93 02:27:04 MST
  4. From: whm@grissom.sunquest.com (Bill Mitchell)
  5. Message-Id: <9305290927.AA02753@grissom.sunquest.com>
  6. To: icon-group@cs.arizona.edu
  7. Subject: Re: Comparative Languages (MUMPS?)
  8. Status: R
  9. Errors-To: icon-group-errors@cs.arizona.edu
  10.  
  11. I've never worked with MUMPS, but I know of a company that uses it in a
  12. very large medical information system that is very successful.
  13.  
  14. MUMPS is an old language, dating back to 1965 or so.  MUMPS started as
  15. an operating system, i.e., the machine ran MUMPS, but now usually sits on
  16. top of an operating system.
  17.  
  18. It's my opinion that MUMPS gets most of its punch from having a memory-managed
  19. string datatype and N-dimensional arrays that can be made persistent.
  20. (Voila -- instant hierarchical database!)  Other factors are that MUMPS is a
  21. pretty simple language and appears to be easy to learn, and that a MUMPS
  22. environment typically provides an edit-run-edit-run cycle (i.e., no link
  23. step).
  24.  
  25. However, there are some problems.  All my MUMPS knowledge is second hand,
  26. so I hope somebody will correct me if I err.
  27.  
  28. One problem is that the strings are *not* arbitrary length.  I think the
  29. length defined by the standard is 256 chars, although some implementations
  30. allow up to 512 or perhaps longer.   I don't know if arbitrary characters
  31. (e.g. a NUL) are allowed in strings or not.
  32.  
  33. Program source is stored as persistent data, which is pretty cool, but
  34. raises problems with configuration management and version control.  For
  35. example, if you replace routine "FOOBAR", *everybody* is then running
  36. with a new version of FOOBAR.
  37.  
  38. I'm not sure if control structures like "if" and "while" are present in a
  39. traditional form or not.  (For example, I've got a dim recollection that
  40. the clause of a do-loop must fit onto a single line of source.)
  41.  
  42. A very common idiom is to store values as delimited fields.  For example a
  43. person's name might be represented as "John/J/Smith".  Typically, several
  44. levels of delimiters might be used.  For example, [[1,2],[3,[4,5]]] in Icon
  45. might be represented as the string "/1!2/3!4#5/".  A lot of computational
  46. energy seems to be expended on the assembly and disassembly of such
  47. strings.  [[1,2],[3,[4,5]]] might also be represented as X(1) = "1/2" and
  48. X(2) = "3/4!5" or X(1,1) = 1, X(1,2) = 1, X(2,1) = 3, X(2,1,1) = 4 and
  49. X(2,1,2) = 5.  Those subscripts could have been strings, if so desired.
  50.  
  51. As far as I know, there's no really schema definition for the database --
  52. the code defines the expected structure of the data.  That means that
  53. you've got to be very careful with documentation of the format of
  54. everything in the database.  If the schema changes, you go through the code
  55. with a fine tooth comb looking for uses of the old schema and rewrite as
  56. appropriate. 
  57.  
  58. MUMPS is typically implemented as an interpreter and some implementations
  59. don't fully analyze source until it is executed.  It's therefore possible to
  60. hit a syntax error in production code.
  61.  
  62. At one point in time there was a restriction on variable name lengths;
  63. I think it was a five or eight character max.  I don't know if this still
  64. exists or not.
  65.  
  66. A lot of successful commercial systems written in MUMPS are on the market,
  67. but I think MUMPS might give a person with a recent CS degree a severe case
  68. of culture shock! 
  69.  
  70.     /------------------------------\         /----------------\
  71.    /         Bill Mitchell        \       / 7120 E. Kiva Way \
  72.   /  Mitchell Software Engineering   \O====/ Tucson, AZ, 85715  \
  73.   \ Consulting/Development/Training  /     \   602-577-6431     /
  74.    \  OO Methods/C++/C/Icon/UNIX    /       \   whm@mse.com    /
  75.     \------------------------------/         \----------------/
  76.  
  77.